Presentation: Tweet"Multi-core with less Pain: Deterministic Parallel Programming with Haskell"
You want to make your code run faster, so you think about changing it to run in parallel to use multiple cores. But most approaches to parallelism also force you to rewrite your program using explicit concurrency which means you'll always worry about race conditions, deadlocks and other concurrency bugs. Deterministic parallelism frees you from concurrency bugs and gives a strong guarantee that your program remains deterministic, so it will give the same result no matter the number of cores or the scheduling being used.
Haskell offers a variety of libraries for deterministic parallelism that enable concise high-level parallel programs. In this talk we will look at the idea of parallelism without concurrency and give an overview of the paradigms that Haskell offers in this area.
Talk objectives: The point of the talk is to understand the distinction between parallelism and concurrency and see how functional programming lets us achieve the benefits of parallelism without forcing us into using concurrency. We will see a few different approaches to deterministic parallelism and you should get a sense of which approach to use for which kind of problem, or indeed when concurrency is the best approach.
Target audience: If you're interested in multi-core parallelism or functional programming then you should get something out of this talk.